package com.wlsk.license.dto.request;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.wlsk.license.dto.BasePageReqDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * @description: 包车牌分页查询请求参数
 * @author: system
 * @date: 2025/9/26
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("包车牌分页查询请求参数")
public class PlateDraftPageReqDto extends BasePageReqDto {
    @ApiModelProperty(value = "用户id,网关自动注入，不需要传值", required = true)
    @NotNull(message = "未登录或登录失效，请求重新登录!")
    private Long uid;

    @ApiModelProperty(value = "包车类型")
    private int licplatype;

    @ApiModelProperty(value = "驾驶员")
    private String driverName;

    @ApiModelProperty(value = "车牌号")
    private String plateNumber;

    @ApiModelProperty(value = "包车牌号")
    private String charterPlateNumber;

    @ApiModelProperty(value = "申请编号")
    private String applyNumber;

    @ApiModelProperty(value = "使用期限起")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    @ApiModelProperty(value = "使用期限止")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    @ApiModelProperty(value = "申请时间起")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date applyStartTime;

    @ApiModelProperty(value = "申请时间止")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date applyEndTime;

    @ApiModelProperty(value = "申请状态 0：草稿 1：待签发 2：待审核 3：已审核未打印 4：已生成包车牌 5：已打印 6：已归档 7：作废重打 8：打回重填 9：已终止 不传就是全部 ")
    private String charterPlateStatus;

    @ApiModelProperty(value = "1：申请数据  2：包车牌   不传就是全部 ")
    private String exportType;

    @ApiModelProperty(value = "机构列表")
    private List<OrgOrDptVo> orgOrDptList;

    @ApiModelProperty(value = "机构ID列表", hidden = true)
    private List<Long> orgIdList;

    @ApiModelProperty(value = "部门ID列表", hidden = true)
    private List<Long> deptIdList;

    @Data
    public static class OrgOrDptVo {

        @ApiModelProperty(value = "机构类型 1：机构  2：部门")
        private Integer orgOrDptType;

        @ApiModelProperty(value = "机构id")
        private Long orgId;
    }
}